import java.util.*;
class a3{
   public static HashSet<Integer> notion=new HashSet<>();
    public static int Max(int A,int B,int C,int Q){
            if(Q<=0||notion.contains(Q)){
                return 0;
            }
            if(Q==A||Q==B||Q==C){
                return 1;
            }else{
                int flag1=Max(A,B,C,Q-A);
                if(0==flag1){
                    notion.add(Q-A);
                }else{
                    return 1;
                }
                int flag2=Max(A,B,C,Q-B);
                if(0==flag2){
                    notion.add(Q-B);
                }else{
                    return 1;
                }
                int flag3=Max(A,B,C,Q-C);
                if(flag3==0){
                    notion.add(Q-C);
                }else{
                    return 1;
                }
                if(Q%A==0){
                    int f=Max(A,B,C,Q/A);
                    if(f==0){
                        notion.add(Q/A);
                    }else{
                        return 1;
                    }
                }
                if(Q%B==0){
                    int f=Max(A,B,C,Q/B);
                    if(f==0){
                        notion.add(Q/B);
                    }else{
                        return 1;
                    }
                }
                if(Q%C==0){
                    int f=Max(A,B,C,Q/C);
                    if(f==0){
                        notion.add(Q/C);
                    }else{
                        return 1;
                    }
                }

            }
            return 0;
        }
    public static void main(String[] args) {
      
        Scanner cin=new Scanner(System.in);
        int n=cin.nextInt();
        for(int i=0;i<n;i++){
            int A=cin.nextInt();
            int B=cin.nextInt();
            int C=cin.nextInt();
            int Q=cin.nextInt();
            System.out.println(Max(A,B,C,Q));
        }
    }
}